﻿Imports Entidad
Imports Negocio
Imports Utilitario

Public Class frmActualizarRutas

    Dim servicio As New RutaNegocio

    Sub mostraMensaje(ByVal men As String)
        MsgBox(men, MsgBoxStyle.Information, "Mensajes al Usuario")
    End Sub

    Sub listarRutasPedidos()
        Dim ds As DataSet = servicio.listarPedidosRutas()

        If ds.Tables(0).Rows.Count <> 0 Then
            dgvRutasPedidos.DataSource = ds.Tables(0)

            If dgvRutasPedidos.RowCount <> 0 Then
                dgvRutasPedidos.Rows(0).Selected = False
            End If
        End If
    End Sub

    Sub listarRutas()
        Dim ds As DataSet = servicio.listarRutas()
        For i = 0 To ds.Tables(0).Rows.Count - 1
            dgvZonas.Rows.Add(ds.Tables(0).Rows(i)("RUT_Descripcion").ToString.Trim, ds.Tables(0).Rows(i)("N1").ToString.Trim, ds.Tables(0).Rows(i)("N2").ToString.Trim, ds.Tables(0).Rows(i)("N3").ToString.Trim, ds.Tables(0).Rows(i)("N4").ToString.Trim)
        Next
    End Sub

    Private Sub dgvRutasPedidos_CellContentClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvRutasPedidos.CellContentClick
        dgvRutasPedidos.EndEdit()
        Dim f As Integer = e.RowIndex

        If f > -1 Then
            transaccionGrillas()
        End If
    End Sub

    Private Sub transaccionGrillas()
        limpiar()
        For Each fila1 As DataGridViewRow In dgvRutasPedidos.Rows
            If Convert.ToBoolean(fila1.Cells("Column1").Value = True) Then
                For Each fila2 As DataGridViewRow In dgvZonas.Rows
                    If fila1.Cells("Column15").Value = fila2.Cells("Column11").Value Then
                        fila2.Cells("Column12").Value = CInt(fila2.Cells("Column12").Value) + CInt(fila1.Cells("Column6").Value)
                        fila2.Cells("Column5").Value = CInt(fila2.Cells("Column5").Value) + CInt(fila1.Cells("Column7").Value)
                        fila2.Cells("Column13").Value = CDec(fila2.Cells("Column13").Value) + CDec(fila1.Cells("Column8").Value)
                        fila2.Cells("Column14").Value = CDec(fila2.Cells("Column14").Value) + CDec(fila1.Cells("Column9").Value)
                    End If
                Next
            End If
        Next
    End Sub

    Sub limpiar()
        For Each fila As DataGridViewRow In dgvZonas.Rows
            fila.Cells("Column12").Value = "0"
            fila.Cells("Column5").Value = "0"
            fila.Cells("Column13").Value = "0.00"
            fila.Cells("Column14").Value = "0.00"
        Next
    End Sub

    Private Sub frmActualizarRutas_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        dgvZonas.RowHeadersVisible = False
        listarRutasPedidos()
        listarRutas()
    End Sub

    Private Sub dgvRutasPedidos_CellDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvRutasPedidos.CellDoubleClick
        Dim f As Integer = e.RowIndex

        If f > -1 Then
            frmDetallePedidoRuta.lblCliente.Text = dgvRutasPedidos.Rows(f).Cells("Column2").Value
            zon = dgvRutasPedidos.Rows(f).Cells("Column17").Value
            codigoCliente = dgvRutasPedidos.Rows(f).Cells("Column16").Value
            codPedido = dgvRutasPedidos.Rows(f).Cells("Column10").Value

            If frmDetallePedidoRuta.ShowDialog() = Windows.Forms.DialogResult.OK Then
                mostraMensaje("Se actualizó la ruta correctamente.")
                dgvRutasPedidos.Rows(f).Cells("Column15").Value = zonSel
                transaccionGrillas()
            End If
        End If
    End Sub

End Class